package com.mmx.service;

import com.mmx.domain.entity.FlowDefinition;

/**
 * @desc: 流程定义服务
 * @author: liushuai
 * @date: 2023/1/30 15:25
 */
public interface DefinitionService {

    /**
     * 流程定义部署
     * @param flowData 部署的流程JSON字符串
     * @Author: liushuai
     * @Date: 2023/1/30 15:36
     */
    void deploy(String flowData);

    /**
     * 根据流程定义Key查询最新流程定义
     * @param definitionKey  流程定义Key
     * @return: com.mmx.domain.entity.FlowDefinition
     * @Author: liushuai
     * @Date: 2023/1/30 15:37
     */
    FlowDefinition selectFlowDefinitionByDefinitionKey(String definitionKey);

    /**
     * 根据流程实例Id获取流程定义
     * @param instanceId
     * @return: com.mmx.domain.entity.FlowDefinition
     * @Author: liushuai
     * @Date: 2023/3/30 16:21
     */
    FlowDefinition selectFlowDefinitionByInstanceId(Long instanceId);
}
